<?php
/*
Author: Nicolas Zdanovicz
Date 20140325
User Data Access Class
*/
class DAOProfesor{

    public static function getById($id){
        
         $db = getPDO();
         $sql = "select * from profesor where id = ?";
         $stmt = $db->prepare($sql);
         $ok = $stmt->execute(array($id));
         $obj = $stmt->fetchObject();
         
         $prf = null;
         if($obj!=null){
             $prf= DAOProfesor::mapValues($obj);
         }
         else{
            throw new ENoDataFound("No se encontro el profesor con el id ".$id);
         }
         
         return $prf;
    }
    
    



    public static function getAll(){
         
         $db = getPDO();
         $sql = "select * from profesor";
         $stmt = $db->prepare($sql);
         $ok = $stmt->execute();
         $result = $stmt->fetchAll(\PDO::FETCH_OBJ);
         $arrResult = array();    
        
         foreach($result as $row){             
             array_push($arrResult,DAOProfesor::mapValues($row));
         }
         
        return $arrResult;
    }
    
    public static function getActives(){
    	 
    	$db = getPDO();
    	$sql = "select * from profesor where activo = 'S'";
    	$stmt = $db->prepare($sql);
    	$ok = $stmt->execute();
    	$result = $stmt->fetchAll(\PDO::FETCH_OBJ);
    	$arrResult = array();
    
    	foreach($result as $row){
    		array_push($arrResult,DAOProfesor::mapValues($row));
    	}
    	 
    	return $arrResult;
    }    
    
    
    
    public static function add($profesor){
        
         $db = getPDO();
          $sql = "insert into profesor (nombre,alta,activo) values ";
          $sql.= "(?,?,?)";
          $stmt = $db->prepare($sql);
          $ok = $stmt->execute(array($profesor->getNombre(),
                                     $profesor->getAlta(),
                                     $profesor->getActivo()));
        $profesor->setId($db->lastInsertId());
        $profesor->setAlta(date("d/m/Y H:i",strtotime($profesor->alta)));
        return $profesor;        
    }
    
    public static function deleteById($id){
    
    	$db = getPDO();
    	$sql = "delete from profesor where id = ?";
    	$stmt = $db->prepare($sql);
    	$ok = $stmt->execute(array($id));
    	return;
    }
    
    public static function update($profesor){
    
    	$db = getPDO();
    	$sql = "update profesor set nombre = ?, activo = ? where id =?";
    	$stmt = $db->prepare($sql);
    	$ok = $stmt->execute(array(
    			$profesor->getNombre(),
    			$profesor->getActivo(),
    			$profesor->getId()));
    	return $profesor;
    }
    
     
    private static function mapValues($obj){
        $prf = new Profesor();
        $prf->setId($obj->id);
        $prf->setNombre($obj->nombre);
        $prf->setAlta(date("d/m/Y H:i",strtotime($obj->alta)));
        $prf->setActivo($obj->activo);
        
        return $prf;
    }
    
}
?>